package com.ys.breakdemo;

/**
 * @author CodeYang
 * @Description :
 * 韩信点兵:
 *   三人一组余两人,五人一组余三人,七人一组余四人,请问最少需要多少士兵
 *   思路分析:
 *      70是5与7的倍数，而用3除余1，
 *      21是3与7的倍数，而用5除余1，
 *      15是3与5的倍数，而用7除余1，
 *      因而
 *      70×2是5与7的倍数，用3除余2，
 *      21×3是3与7的倍数，用5除余3，
 *      15×4是3与5的倍数，用7除余4，
 *      所以70×2+21×3+15×4=263=2×105+53，
 *      则得53除以3余2，53除以5余3，53除以7余4，
 *      所以这队士兵至少有53人．
 *      Math 思路: 假设x 人 解方程:
 *      3×5×7=105，
 *      computer 思路: 循环思路,利用计算机暴力尝试
 * @Date 2020/12/7 14:54
 */
public class BreakTest01 {
    public static void main(String[] args) {
        int number = 0;
        // 当不明确循环次数时,建议使用死循环
        while (true){
            if (number % 3 ==2 && number % 5 ==3 && number % 7 ==4){
                System.out.println("需要:"+number+"个士兵");
                break;
            }
            number++;
        }
    }
}
